This invention relates to a method for synchronizing at least one slave clock to a master clock, and is particularly applicable to distributed data acquisition and/or data processing systems.
There are many applications in which it is either necessary or desirable to distribute the acquisition or processing of data over a number of computer-controlled stations, usually for reasons related to distance between data-receiving transducers or the need for dividing up a very heavy workload into more manageable subparts, with each subpart being handled by a separate processor. Such applications include monitoring of a common event by multiple satellites (for enhanced reception, triangulation or other purposes) and real-time data acquisition and processing. Process control monitoring and sequence of events recording are among the many other environments which require multiple autonomous data and control streams. Additionally, these tasks demand that the temporal relationships between the data and/or control streams of the various stations involved be preserved.
Thus because of either the spatial requirements or the intense input-output and computational requirements of such data acquisition and/or processing systems, the control and data streams are often distributed among many processors. In order to maintain time synchronization between the data and control streams of the processors, current systems depend on:
1. Shared hardware for their synchronization, typically a common clock and reset line, requiring a direct connection between the common clock and each of the stations to be synchronized to the common clock; or
2. Where a direct connection is not feasible, the wireless transmission of time information from a common clock to each of the stations. In such cases temporal uncertainty due to communications delay determines the overall error in time resolution of the system.
Even where a direct connection is employed, temporal uncertainty limits system time resolution when the distances between stations are substantial.
In a systems having multiple stations it is desirable for each station to have its own clock, so that the station can continue operating even if synchronization with the common clock is temporarily lost. However, such clocks may operate at slightly different frequencies, further compounding the time resolution/synchronization problem.
One arrangement for synchronizing multiple processors is described in an article entitled "Time Source Synchronizes Computers In Networks", published in the Sept. 21, 1987 edition of Electronic Engineering Times. This arrangement utilizes specialized hardware to maintain local clocks synchronized to a national standard.
Accordingly, an object of the present invention is to provide a method for adjusting the clocks of multiple stations (which can but need not necessarily be data acquisition/processing stations) to a common time base.
Another object of the invention is to provide such a method which is capable of minimizing the adverse effects of transmission time.
Still another object of the invention is to provide such a method which is capable of minimizing the effects of variation in clock frequency among the various clocks involved.
Still another object of the invention is to provide such a method which is capable of minimizing the effects of variation in reference time among the various clocks involved.
Yet another object of the invention is to meet the aforementioned objectives through the use of standard data communications means and standard computer operating systems.